package vip.liux.backend.application.service.product;

import lombok.Getter;
import lombok.Setter;
import vip.liux.contracts.shared.enums.Status;
import vip.liux.contracts.shared.enums.product.ShelfState;
import vip.liux.contracts.shared.value.SpecDetail;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 商品 SKU 详情类
 * 包含商品的基本信息以及 SKU 相关的详细信息
 */
@Getter
@Setter
public class ProductSkuDto implements ProductExtInfo, Serializable {

    /**
     * 商品编号 (SPU)
     */
    private String spu;

    /**
     * 三级类目编号
     */
    private String catNo;

    /**
     * 三级类目名称
     */
    private String catName;

    /**
     * 一级类目编号
     */
    private String catRootNo;

    /**
     * 一级类目名称
     */
    private String catRootName;

    /**
     * 二级类目编号
     */
    private String catParentNo;

    /**
     * 二级类目名称
     */
    private String catParentName;

    /**
     * 商品品牌编号
     */
    private String brandNo;

    /**
     * 商品品牌名称
     */
    private String brandName;

    /**
     * 商品名称
     */
    private String productName;

    /**
     * 商品描述
     */
    private String desc;

    /**
     * 商品状态 (启用/禁用)
     */
    private Status status;

    /**
     * SKU 编号
     */
    private String sku;

    /**
     * 商品条码
     */
    private String barCode;

    /**
     * 市场价
     */
    private BigDecimal marketPrice;

    /**
     * 销售价
     */
    private BigDecimal salePrice;

    /**
     * 商品库存总量
     */
    private Integer stockTotal;

    /**
     * SKU 图片
     */
    private String image;

    /**
     * 商品上架状态
     */
    private ShelfState shelfState;

    /**
     * 商品规格列表
     */
    private List<SpecDetail> specDataList;
}